// 身份验证
import router from '@/router'
import store from '@/store'

// 设置路由前置守卫
router.beforeEach(async (to, from, next) => {
  const token = store.state.login.token
  const loginName = store.getters.loginName
  // 有token时
  if (token) {
    // 有token，要跳转登录页时回主页
    if (to.path === '/login') {
      next('/')
    } else {
      // 有token，没有登录信息时
      if (!loginName) {
        try {
          await store.dispatch('login/getUserInfo')
          next()
        } catch (error) {
          // token错误或过期
          // 清除Token
          store.commit('login/DELETEUSERINFO')
          next('/login?address=' + to.path)
        }
      } else {
        // 有token，有登录信息时
        next()
      }
    }
  } else {
    // 没有token时，去往页面需要token时则调往登陆页面
    if (to.meta.isRole) {
      console.log(to.path)
      console.log(from.path)
      next('/login?address=' + from.path)
    } else {
      next()
    }
  }
})
